package com.yunji.news.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yunji.news.entity.ExamOutline;

import java.util.List;

/**
 * 校测考纲服务接口
 *
 * @author yunji
 * @since 2024-11-26
 */
public interface ExamOutlineService extends IService<ExamOutline> {

    /**
     * 分页查询校测考纲
     */
    IPage<ExamOutline> getOutlinePage(Integer page, Integer size, 
                                     Long schoolId, Long majorId, 
                                     Integer examYear, String examType, String keyword);

    /**
     * 创建校测考纲
     */
    boolean createOutline(ExamOutline outline);

    /**
     * 更新校测考纲
     */
    boolean updateOutline(ExamOutline outline);

    /**
     * 发布校测考纲
     */
    boolean publishOutline(Long id);

    /**
     * 获取已发布的考纲列表
     */
    List<ExamOutline> getPublishedOutlines(Long schoolId, Long majorId, Integer examYear);

    /**
     * 记录下载次数
     */
    boolean recordDownload(Long id);

    /**
     * 获取热门考纲
     */
    List<ExamOutline> getPopularOutlines(Integer limit);
}